package codeTest.baidu;

import java.util.*;

/**
 * 没有记住 最短路径的板子
 * 网上的解答使用 迪杰斯特拉 解决
 *
 * 6 4 4 2
 * 1 2 1
 * 4 1 2
 * 3 5 2
 * 2 3 1
 * 6 3 1
 * 4 5 1
 * 1 3 3
 * 2 4 2
 * 2 3 5
 * 1 4 6 6 2
 *
 * 29
 *
 * Author: shen qi han
 * Date: 2022/3/22 下午8:08
 */
public class Main3 {



    public static void main(String[] args) {
        Map<Integer, Set<int[]>> map = new HashMap<>();

        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt(); // n个乡村编号
        int m = cin.nextInt(); // 单向道
        int k = cin.nextInt(); // 双向道
        int s = cin.nextInt(); // 快递站的乡村编号
        // u -> v 耗时 w
        int u = 0, v = 0, w = 0;
        int[][] arr = new int[n][n];
        for(int i = 0; i < m + k; i++){
            u = cin.nextInt();
            v = cin.nextInt();
            w = cin.nextInt();
            arr[u][v] = w;
            // init
            map.putIfAbsent(u, new HashSet<int[]>());
            map.get(u).add(new int[]{v, w});
            // double condition
            if(i >= m){
                arr[v][u] = w;
                map.putIfAbsent(v, new HashSet<int[]>());
                // add
                map.get(v).add(new int[]{u, w});
            }
        }
        int a = cin.nextInt(); // 当面取件 之前的耗时t为 奇数的时候
        int b = cin.nextInt(); // 投放快递耗时 之前的耗时t为 偶数的时候
        int q = cin.nextInt(); // 配送的快递数量
        int[] need = new int[q]; // 需要依次 配送的乡村编号
        for(int i = 0; i < q; i++){
            need[i] = cin.nextInt();
        }

        // 总是挑选 耗时最段的路径-》采用优先队列
        // 配送每个 快递
        int[] time = new int[]{0};
        task(map, arr, s, a, b, need, time);

        // 然后从最后一个节点回来


    }


    public static int task(Map<Integer, Set<int[]>> map, int[][] arr, int s, int a, int b, int[] needs, int[] time){
        // for loop ?
        int times = 0;
        // need to where
        for(int need : needs){
            if(s == need){
                times += 0;
            }else{
                // find next node
                Set<int[]> next = map.get(s);


            }
        }
        return 0;
    }

    public void dfs(Map<Integer, Set<int[]>> map){


    }




}
